Skip to content

队列

queue,队列,是 一种先进先出的数据结构,队尾插入元素,队头删除元素。

  • 基本语法
    queue<typename> name;

    需要加上头文件 queue

例如:

c
//表示创建一个int类型的队列,名字叫做que
queue<int> que;

队列的常用函数

  • push()
    queue_name.push(x) 将x进队列。
push() 示例代码
c
    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列

分析

此时,队列里的元素,从队头到队尾,元素依次是 10,20,30; 图解如下:
image.png

  • front()
    queue_name.front() 获得队头元素。
front() 示例代码
cpp
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列
	cout << "队头元素是:" << que.front() << endl;
    return 0;
}

运行结果:
```c
队头元素是:10
  • back()
    queue_name.back() 获得队头元素。
back() 示例代码
cpp
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列
	cout << "队尾元素是:" << que.back() << endl;
    return 0;
}

运行结果:

c
队尾元素是:30
  • pop()
    queue_name.pop() 可以弹出队头元素。
pop() 示例代码
cpp
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列
	cout << "pop之前:" << endl;
	cout << "队头元素是:" << que.front() << endl;
	cout << "队尾元素是:" << que.back() << endl;
	que.pop();
	cout << "pop之后:" << endl;
	cout << "队头元素是:" << que.front() << endl;
	cout << "队尾元素是:" << que.back() << endl;
    return 0;
}

运行结果:

c
pop之前:
队头元素是:10
队尾元素是:30
pop之后:
队头元素是:20
队尾元素是:30

分析

通过 pop 函数,队列中的 10 被弹出去了,再次验证队列的删除是从队头进行操作的。

  • empty()
    queue_name.empty() 可以检测queue内是否为空,返回true为空,返回false为非空。
empty() 示例代码
cpp
#include<bits/stdc++.h>
#include<queue>
using namespace std;
int main()
{
    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列
	if(que.empty())
	{
		cout << "队列内是空的" << endl;
	}else{
		cout << "队列内有元素" << endl;
	}
    return 0;
}

运行结果:

c
队列内有元素

分析

此时队列从队头到队尾,分别有元素 10,20,30,所以 empty 函数不成立,执行 else 部分,打印"队列内有元素"。

  • size()
    queue_name.size() 返回queue内元素的个数。
size 示例代码
cpp
#include<bits/stdc++.h>
#include<stack>
using namespace std;
int main()
{
    queue<int> que;
	que.push(10); // 放数值10进队列
	que.push(20); // 放数值20进队列
	que.push(30); // 放数值30进队列
	cout << "队列内元素个数是:" << que.size() << endl;
    return 0;
}

运行结果:

c
队列内元素个数是:3

分析

此时队列从队头到队尾,分别有元素 10,20,30,所以一共是 3 个元素。

队列的小练习